ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド
リリース6.0
B25774-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

自動リフレッシュ時に指定した間隔でキャッシュがリフレッシュされない

自動リフレッシュの状況は、ttIsqlから組込みプロシージャttCacheMonitor()を定期的にコールして検証できます。ttCacheMonitor()には自動リフレッシュの処理状況を示す次の2つの機能があります。

自動リフレッシュ状態をリセットする

増分AUTOREFRESHは、Oracle実表でTRUNCATE文が使用されている場合は、正しく動作しません。Oracle実表でTRUNCATE文が使用されている場合は、ALTER CACHE GROUP文を使用してAUTOREFRESHをリセットし、AUTOREFRESH STATEをOFFに設定してから、別のALTER CACHE GROUP文でAUTOREFRESH STATEをONに戻します。

自動リフレッシュ・オブジェクトをリカバリしてリセットする

問題の原因が、AUTOREFRESHで使用するOracleオブジェクトにある場合、またはその可能性がある場合は、次の手順でOracleオブジェクトを再作成できます。

  1. 問題のキャッシュ表があるすべてのデータ・ストア上のすべてのキャッシュ・グループについて、ALTER CACHE GROUPを使用してAUTOREFRESHの状態をOFFにリセットします。
  2. alter cache group <cachegroup name> set autorefresh state off; 
    
  3. 対象となるすべてのデータ・ストア上のすべてのキャッシュ・エージェントを停止します。
  4. キャッシュ・グループ内の各表について、ユーザー・カウントが0(ゼロ)かどうかを確認します。
  5. Oracleデータベースで、次の文を実行します。

    select usercount from <autorefresh id>.ft_user_count 
    where tablename ='<owner>.<tablename>'; 
     

    カウントが0(ゼロ)でない場合は、次の文を実行して0(ゼロ)に設定します。

    update <autorefresh id>.ft_user_count set usercount = 0 where tablename ='<owner>.<tablename>';
  6. いずれかのキャッシュ・エージェントを起動します。そのキャッシュ・エージェントによって、クリーンアップ操作が実行されます。クリーンアップが終了すると、次のメッセージがデーモン・ログに書き込まれます。
  7. Cleanup of the Oracle objects completed 
    
  8. キャッシュ・エージェントによるクリーンアップが終了したら、ALTER CACHE GROUPを使用してAUTOREFRESHの状態をONに戻します。
  9. alter cache group <cachegroup name> set autorefresh state on; 
    
  10. 他のすべてのキャッシュ・エージェントを起動します。
  11. 対象となるすべてのキャッシュ・グループについて、ALTER CACHE GROUPを使用してAUTOREFRESHの状態をONに戻します。